package me.zhengjie.modules.website.domain;

import java.io.Serializable;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import javax.validation.constraints.NotBlank;
import lombok.Data;
import me.zhengjie.base.BaseEntity;

import javax.persistence.*;

/**
 * 反馈记录表实体类
 *
 * @author system
 * @since 2024-10-23 22:25:03
 */
@Entity
@Data
@Table(name = "feedback_table")
@ApiModel(value = "FeedbackTable", description = "反馈记录表，用于存储用户反馈的详细信息")
public class FeedbackTable extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 反馈记录唯一标识
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "feedback_id")
    @ApiModelProperty(value = "反馈记录唯一标识", example = "1")
    private Long feedbackId;

    /**
     * 反馈的类型
     */
    @Column(name = "feedback_type")
    @NotBlank(message = "反馈类型不能为空")
    @ApiModelProperty(value = "反馈类型，例如投诉、建议、咨询等", example = "投诉")
    private String feedbackType;

    /**
     * 提交反馈的人员姓名
     */
    @Column(name = "feedback_person_name")
    @NotBlank(message = "反馈人姓名不能为空")
    @ApiModelProperty(value = "反馈人姓名", example = "张三")
    private String feedbackPersonName;

    /**
     * 联系电话
     */
    @Column(name = "contact_phone")
    @NotBlank(message = "联系电话不能为空")
    @ApiModelProperty(value = "反馈人的联系电话", example = "13888888888")
    private String contactPhone;

    /**
     * 反馈时间
     */
    @Column(name = "feedback_time")
    @ApiModelProperty(value = "反馈时间", example = "2024-10-23 14:30:00")
    private Date feedbackTime;

    /**
     * 反馈的具体内容
     */
    @Column(name = "feedback_content")
    @NotBlank(message = "反馈内容不能为空")
    @ApiModelProperty(value = "反馈的具体内容", example = "系统存在登录超时问题")
    private String feedbackContent;

    /**
     * 反馈的处理状态
     */
    @Column(name = "processing_status")
    @ApiModelProperty(value = "处理状态，例如未处理、处理中、已处理", example = "未处理")
    private String processingStatus;

    /**
     * 反馈的处理结果
     */
    @Column(name = "processing_result")
    @ApiModelProperty(value = "处理结果，例如处理措施或答复内容", example = "已修复登录超时问题")
    private String processingResult;

    /**
     * 反馈处理完成的时间
     */
    @Column(name = "processing_time")
    @ApiModelProperty(value = "处理完成的时间", example = "2024-10-25 09:15:00")
    private Date processingTime;

    /**
     * 处理反馈的人员姓名
     */
    @Column(name = "processor_name")
    @ApiModelProperty(value = "处理反馈的人员姓名", example = "李四")
    private String processorName;

    /**
     * 附件或者图片
     */
    @Column(name = "files")
    @ApiModelProperty(value = "附件", example = "")
    private String files;
}
